// components/test1/test1.js
let myBehaviors=require("./../../behaviors/my_behaviors");

Component({
  // 将导入的behaviors实例对象，挂载到behaviors数组节点中
 behaviors:[myBehaviors],

  // // 生命周期函数（旧版写法）
  // attached: function() {
  //   // 在组件实例进入页面节点树时执行
  //   console.log("组件进入页面节点树");
  // },
  // detached: function() {
  //   // 在组件实例被从页面节点树移除时执行
  //   console.log("组件移出页面节点树");
  // },

  // 组件的生命周期函数（新的写法：优先级最高）
  lifetimes: {
    attached: function () {
      // 在组件实例进入页面节点树时执行
      console.log("组件进入页面节点树");
    },
    detached: function () {
      // 在组件实例被从页面节点树移除时执行
      console.log("组件移出页面节点树");
    },
  },

  // 组件所在页面的生命周期
  pageLifetimes:{
    show:function(){
      console.log("组件所在的页面显示了");
      this.setData({
        _rgb:{
          r:Math.floor(Math.random()*(255-0+1)),
          g:Math.floor(Math.random()*(255-0+1)),
          b:Math.floor(Math.random()*(255-0+1)),
        }
      });
      this.setData({
        fullColor: `${this.data._rgb.r},${this.data._rgb.g},${this.data._rgb.b}`
      })
      console.log(this.data.fullColor);
    },
    hide:function(){
      console.log("组件所在的页面隐藏了");
    },
    resize:function(){
      console.log("组件所在的页面尺寸变化了");
    },

  },


  options: {
    // 以下划线开头的字段是纯数字字段
    pureDataPattern: /^_/,
    multipleSlots:true
  },
  /**
   * 组件的属性列表:用于接受传入组件的参数
   */
  properties: {
    // max:Number
    max: {
      type: Number,
      value: 33
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    count: 0,
    _rgb: {
      r: 0,
      g: 0,
      b: 0
    },
    fullColor: "0,0,0"

  },

  /**
   * 组件的方法列表
   */
  methods: {
    // 事件处理函数
    add() {
      console.log("传过来的参数：", this.properties.max)

      this.setData({
        count: this.data.count + 1,
        max: this.properties.max + 5
      });
      // 调用自定义函数
      this._shouCount();

    },
    // 自定义函数：取名字的时候加上下划线和事件处理函数区分
    _shouCount() {
      wx.showToast({
        title: 'count的值为：' + this.data.count,
      })
    },
    // 事件处理函数
    changeColor(e) {
      console.log(e.currentTarget.dataset.name);
      if (e.currentTarget.dataset.name === "r") {
        this.setData({
          "_rgb.r": this.data._rgb.r + 5 > 255 ? 0 : this.data._rgb.r + 5,
          fullColor: `${this.data._rgb.r},${this.data._rgb.g},${this.data._rgb.b}`
        })
      } else if (e.currentTarget.dataset.name === "g") {
        this.setData({
          "_rgb.g": this.data._rgb.g + 5 > 255 ? 0 : this.data._rgb.g + 5,
        })
      } else {
        this.setData({
          "_rgb.b": this.data._rgb.b + 5 > 255 ? 0 : this.data._rgb.b + 5,
        })
      }

      this.setData({
        fullColor: `${this.data._rgb.r},${this.data._rgb.g},${this.data._rgb.b}`
      })



    },

    // 
    getFather(){
      this.triggerEvent("father",{value:"hello world"});
      console.log(this);
      this.testFn();
    }
  },
  // 数据监听器
  observers: {
    // 监听一个值
    // "count":function(newC){
    //   console.log("新的count值：",newC);
    // },
    // 监听多个值
    // "count,max":function(newConut,newMax){
    //   console.log("count的新值：",newConut);
    //   console.log("max的新值：",newMax);
    // }
    // 监听对象属性值:任意属性值发送改变都会触发该函数
    // "rgb.r,rgb.g,rgb.b":function(newR,newG,newB){
    //   console.log("新的R",newR);
    //   console.log("新的G",newG);
    //   console.log("新的B",newB);
    // }

    // 监听对象任意属性
    "_rgb.**": function (obj) {
      console.log("新的对象：", obj);
    }
  }
})